Newsgroups: comp.infosystems.gopher,comp.infosystems.www.servers.unix,news.answers Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.kei.com!simtel!news.sprintlink.net!bga.com!garcon.unicom.com!unicom.com!not-for-mail From: chip@unicom.com (Chip Rosenthal) Subject: The GN Gopher/HTTP Server [monthly FAQ posting] Approved: news-answers-request@mit.edu Originator: chip@unicom.com (Chip Rosenthal) Message-ID: Sender: chip@unicom.com (Chip Rosenthal) Supersedes: Expires: Mon, 4 Sep 1995 09:55:40 GMT Summary: answers to frequently asked questions Organization: Unicom Systems Development, Austin, TX Date: Thu, 6 Jul 1995 09:55:40 GMT Followup-To: comp.infosystems.gopher X-Nntp-Posting-Host: chinacat.unicom.com Lines: 550 Xref: senator-bedfellow.mit.edu comp.infosystems.gopher:17201 comp.infosystems.www.servers.unix:2277 news.answers:47827 Archive-name: gn News-answers-archive-name: www/gn-server/diff Posting-frequency: monthly Version: 1.7 @(#) gn 1.7 95/07/06 04:54:07 -------------------------------- Subject: 0. Welcome Welcome to the GN FAQ! This document answers many frequently-asked questions about GN, a free Gopher and World Wide Web server for Unix. Please examine the date near the top of this message. This message is updated from time to time, and older versions might be obsolete. The most up-to-date version of this FAQ may be retrieved from the following locations: - The World Wide Web -- http://www.unicom.com/FAQ/ - The Internet Gopher -- gopher://gopher.unicom.com/11/FAQ - Anonymous FTP -- ftp.unicom.com:/pub/FAQ/gn - Email Archive Server Mail to: "archive-server@unicom.com". Use a "Subject: send 00/FAQ/gn" email header. Or use "Subject: help" for more info. Body of message is ignored. This message is maintained and posted monthly by Chip Rosenthal . Your corrections, additions, and comments are encouraged. Chip has been maintaing this document since May 95, when he took over from Stephen Trier. The original draft was written by Rich Wiggins. Most of these questions were written by Rich and Stephen, to whom the current maintainer is grateful. Additional contributions have been made by: John Franks, E. Loren Buhle, Jr., Josh Smith, Michael Regoli, and Judy Birmingham -- as well as the many folks asking questions and giving answers on the gn-maint-l mailing list. Thanks to all. ------------------------------ Subject: 1. Table of Contents The following questions are answered in this version of the FAQ: 0. Welcome 1. Table of Contents 2. What is GN? 3. How does GN compare to University of Minnesota's gopherd? 4. What is the development and support status of GN? 5. Should I use GN as my WWW server? 6. Is GN free? 7. How can I see GN in action? 8. Where can I get GN? 9. Where can I get more info about GN or contact other GN users? 10. How do I subscribe/unsubscribe from the gn-maint-l mailing list? 11. Can I run GN and gopherd at the same time? 12. How do I make GN answer on both port 70 (gopher) and 80 (HTTP)? 13. I can't query a WAIS database on another computer. Why not? 14. How can I gateway to FTP using GN? 15. How do I get gopherd or g2fd? 16. Can GN do gopher+? Does GN support ASK blocks? 17. I converted from gopherd to GN, and now "waissrc:" doesn't work. 18. I converted from gopherd to GN, and now "ftp:" doesn't work. 19. What's the easiest way to serve the same document in HTML for WWW clients and text for gopher clients? 20. GN is serving truncated documents and menus. How do I fix it? 21. How do I add a link to a specific URL? 22. How can I point to an HTML file in my docs directory (or another subdirectory) from the initial menu? 23. Can I write a GN script that automatically logs in on a telnet session? 24. Can GN scripts get interactive input from the user? 25. Is there an easy way of knowing which version of GN is running on a particular host? 26. How do I set up clickable images? 27. I added a line to /etc/services for a service, but inetd can't find the service. What's wrong? 28. My inline images are showing up as "broken picture" icons. ------------------------------ Subject: 2. What is GN? GN is a multi-protocol server for Gopher and World-Wide Web that runs under Unix. It was written by Dr. John Franks of Northwestern University. * Huh? Did you say GN can serve *both* Gopher and Web clients? Absolutely! You can maintain one document tree and one set of control files to manage both your Gopher and Web services. * How does GN do this magic? It is bilingual! It recognizes the protocol spoken by the client, either Gopher or HTTP (the language of the Web), and answers as appropriate. You use the GN "menu" files to specify which documents may be served to Gopher clients, which may be served to Web clients, and which may be served to both. * Does this mean that my Web pages end up looking like Gopher menus? Not at all! GN provides you access to the full range of Web features, including CGI forms and in-line images. It is fully fluent in HTML. GN pages can look so good, a service running GN won an award in the Best of the Web '94 competition! ------------------------------ Subject: 3. How does GN compare to University of Minnesota's gopherd? GN has some advantages and disadvantages with respect to the UMinn gopherd. Here are some of the advantages: Predictibility - You always know what items GN will present and the order in which things will appear because *you* control this through the "menu" files. (The "menu" files are analogous to gopherd ".Links" files, with many added capabilities.) Implementation - We think GN is smaller, tighter, faster, and more reliable. For example, the (bloated) WAIS searching code is cast off into a seperate "waisgn" executable. This makes GN a lot easier on the system when run out of "inetd". Security - Because you control precisely what documents the server will provide, and because it is a "small" program, we believe it provides positive security benefits. Licensing - The license for GN is clear and unambiguous. It is freeware. HTTP - If you are on the World Wide Web, GN allows you to serve both Gopher and Web. If you aren't doing WWW yet, then GN will ease your transition the day you decide to. Active Community - A large number of sites run GN, and very good support is available through the "gn-maint-l" mailing list. Here are some of the disadvantages: No Gopher+: GN is a gopher0-only server. It does not support the features of the gopher+ protocol, such as ASK blocks. No gateway support: Although GN supports WAIS searches of documents in your Gopher tree, it does not provide a gateway to external WAIS servers. Likewise, it does not include an FTP gateway. ------------------------------ Subject: ?. What is the development and support status of GN? GN is a mature product. Almost no new development is occurring on the product. It is, however, actively maintained and supported by the author. Also, the gn-maint-l mailing list (discussed shortly) provides an active forum for GN users and administrators. ------------------------------ Subject: ?. Should I use GN as my WWW server? If you need to support Gopher as well as the HTTP protocols, GN might be a very good choice. It greatly reduces your administrative burden by providing both services through a single set of configuration and data files. If, however, you have no need for Gopher support, you might find that some of the newer WWW servers provide a higher level of capability. In particular, you might want to look at WN, an HTTP-only server written by John Franks. Additional information is available at . ------------------------------ Subject: 4. Is GN free? Yes. GN is offered under the GNU Public License. No royalties are required for any use, including commercial use or distribution. (The University of Minnesota charges for commercial use of their Unix server. Connect to their server (gopher.tc.umn.edu port 70) and look under "Information About Gopher" for details.) ------------------------------ Subject: 5. How can I see GN in action? GN's home server is hopf.math.nwu.edu. This computer runs GN, and you can browse it with gopher or WWW to get a taste of its abilities. You will find very good online documentation, suitable for reading section-by-section -- or for printing in its entirety. You'll also find online examples of how GN handles certain document types. You may connect either via WWW or Gopher: Name=The home of GN (hopf.math.nwu.edu) Path= Type=1 Host=hopf.math.nwu.edu Port=70 ------------------------------ Subject: 6. Where can I get GN? GN is distributed by anonymous FTP from ftp.acns.nwu.edu in /pub/gn. To get GN, follow these steps: FTP to ftp.acns.nwu.edu Log in as anonyous Use your e-mail address as your password cd /pub/gn Fetch the files you need The file will be called gn-2.##.tar.gz (where "2.##" really will appear as the current version number). After you retrive the file you will need to uncompress it and unarchive it before you can configure it and build it. The ".gz" suffix means the archive has been compressed with the GNU Zip ("gzip") utility. This is somewhat similar to the standard Unix compress program (which produces ".Z" files). Therefore, you need a copy of the GNU Zip package before you can even begin. It is a popular program, and available on hundreds (thousands?) of archive sites throughout the world. The home site for GNU software is prep.ai.mit.edu. ------------------------------ Subject: 7. Where can I get more info about GN or contact other GN users? There are a number of resources to help you learn about GN and help you administer your server. We've already mentioned the hopf.math.nwu.edu server. Here are a few more. There is a mailing list called "gn-maint-l" dedicated to supporting GN users. If you are the least bit interested in the package, you *want* to join list. There is an extremely active community supporting GN, and they all hang out here. The next section tells you how to join the list. The Usenet comp.infosystems.gopher newsgroup is another resource. Note, however, that although many GN administrators read that group, most discussion specific to GN occurs on the gn-maint-l list. The comp.infosystems.gopher group is still a good place to ask general Gopher protocol questions. Also note that while all new versions of GN, including bug fix releases, are announced on gn-maint-l, only major revisions are announced in comp.infosystems.gopher. Chip Rosenthal maintains a "GN Information page" with some useful tools for the GN administrator and pointers to other information. See or . ------------------------------ Subject: 8. How do I subscribe/unsubscribe from the gn-maint-l mailing list? There is a mailing list for GN users, known as gn-maint-l. To subscribe with the address from which you're sending mail, send a message to 'majordomo@hmc.edu', with "subscribe gn-maint-l" as the entire body (not the Subject: line) of the messge. To subscribe with some other address, do exactly as above, except use "subscribe gn-maint-l otheraddress" as the body, where "otheraddress" is the other address. (This second method requires the list maintainer's approval before it will take effect.) For more information on using the mailing list server, send the one-line message "help" to majordomo@hmc.edu. To unsubscribe, send the phrase "unsubscribe gn-maint-l" in a message body (not the subject) to majordomo@hmc.edu. If that doesn't work, use "unsubscribe gn-maint-l ". If all else fails, contact the human operating the list at owner-gn-maint-l@hmc.edu. Be patient -- the first suggestion here works automatically, but the other two require human intervention and might take a day or two. IMPORTANT: Never send an unsubscription request to any other address, particularly the main list address. This will NOT get you off the list. All it does is broadcast your message to *all* of the other list members, who couldn't unsub you even if they wanted to. ------------------------------ Subject: 9. Can I run GN and gopherd at the same time? Yes. They must be run on different ports and should have different data directories. Here is an example: Place appropriate entries for both ports in your /etc/services file (or NIS services map): gopher 70/tcp # gopher server gopher-gw4 2073/tcp # gateway 4 for gopher server The designation "gopher-gw4" and the port 2073 are arbitrary for the second server. Use whatever name and port you wish. Then add entries for each in /etc/inetd.conf: gopher stream tcp nowait nobody /usr/local/libexec/gn gn gopher-gw4 stream tcp nowait nobody /usr/local/libexec/gopherd gopherd ------------------------------ Subject: 10. How do I make GN answer on both port 70 (gopher) and 80 (HTTP)? Put two entries for GN in your inetd.conf, one on each port. Unless you intentionally want the two GNs to return different data, both entries should have identical command-line options. Here is an example: Place appropriate entries for both ports in your /etc/services file (or NIS services map): gopher 70/tcp # gopher server http 80/tcp www # HyperText Transfer Protocol for WWW The next two lines go in /etc/inetd.conf: gopher stream tcp nowait nobody /usr/local/libexec/gn gn http stream tcp nowait nobody /usr/local/libexec/gn gn Notice that these lines are identical except for the port name. The paths and options in your inetd.conf lines will be different, depending on how you have set up gopher. Remember to tell inetd to re-read its configuration (probably "kill -HUP") after making the changes. ------------------------------ Subject: 11. I can't query a WAIS database on another computer. Why not? GN uses WAIS only for local searches. It cannot gateway to a remote WAIS server. gopherd can be used as a gateway to remote WAIS servers. ------------------------------ Subject: 12. How can I gateway to FTP using GN? You cannot, at least not directly. GN does not have a built-in FTP gateway. You can install a separate gateway program to do FTP gatewaying. Suitable programs are gopherd and g2fd. ------------------------------ Subject: 13. How do I get gopherd or g2fd? For information on how to get GN, see question 4. To get gopherd: Anonymous FTP to boombox.micro.umn.edu. Look in the directory /pub/gopher/Unix for a file with a name like, "gopher-2.nnn.tar.Z". nnn is a version number which can't be predicted here. To get g2fd: Anonymous FTP to boombox.micro.umn.edu. Look in the directory /pub/gopher/Unix/gopher-gateways/gopher2FTP. The files ReadMe and g2fd.c are the gateway. ------------------------------ Subject: 14. Can GN do gopher+? Does GN support ASK blocks? No. GN does not support any gopher+ features at this time. ------------------------------ Subject: 15. I converted from gopherd to GN, and now "waissrc:" doesn't work. GN uses a different syntax for WAIS searches. Please see the documentation in the GN package for more details. ------------------------------ Subject: 16. I converted from gopherd to GN, and now "ftp:" doesn't work. GN does not have a built-in FTP gateway. You must use an external gateway, such as g2fd or gopherd. ------------------------------ Subject: 17. What's the easiest way to serve the same document in HTML for WWW clients and text for gopher clients? You need to have a plain text file as well as the html file. So. . . contruct the html file and put in a dummy text file . . anything will do (eg. "hi" is fine). This will allow the line in menu to work. For example, presume you have a file called junk.html You should create a text file called junk Your menu entry will be: Name=Name of the item Type=0h/junk (I'm presuming this is in the top directory) Then go mkcache Read the file via a WWW-client (e.g. Mosaic) and SAVE it to a text file. The formatting will be done, stripping it of the html stuff. Then take this saved text file and copy it overtop (e.g. mv new_stuff junk) and you are done. You should make sure none of the lines in the new text file are >80 characters in length, but that is all. ------------------------------ Subject: 18. GN is serving truncated documents and menus. How do I fix it? Running a Streams-based TCP, eh? If you are running 2.09 or later, go into "config.h" and enable DO_LINGER. ------------------------------ Subject: 19. How do I add a link to a specific URL? Version 2.09 of GN adds a new construct to the "menu" file. Instead of making a "Name=" entry, use: URLlink=The change log for GN Url=http://hopf.math.nwu.edu/docs/CHANGES UrlLinks appear only to Web clients. They are omitted from menus served to Gopher clients. ------------------------------ Subject: 20. How can I point to an HTML file in my docs directory (or another subdirectory) from the initial menu? The trick here is that you need *two* menu entries for this file: an entry in your main menu that provides a pointer to the file, and another in the docs directory that authorizes the access. If you do not want the file to appear in the listing provided for the docs subdirectory, then you may specify Attribute=Invisible there. Also, if you have just an HTML version of the document you might want to say Attribute=HttpOnly in the main menu entry to prevent Gopher clients from seeing it. Here is an example: # In data-directory/menu Name=some HTML document Path=0/docs/myfile ContentType=text/html Attribute=HttpOnly # In data-directory/docs/menu Name=dummy entry to allow file to be served Path=0/docs/myfile ContentType=text/html Attribute=Invisible Note that the "ContentType" records can be removed if the file is called "myfile.html" instead of just "myfile". If you have both HTML and plaintext versions, then use an "0h" instead of "0" selector and dump the "HttpOnly" attribute (and leave off the ".html"). ------------------------------ Subject: 21. Can I write a GN script that automatically logs in on a telnet session? No, this can't be done. Scripts run on the gopher server, but telnet sessions run on the _client_ computer. The gopher server isn't consulted at all when the client launches a telnet session; it goes straight to its destination, not through the server. This is the way the gopher protocol itself is designed, so you'll find the same no-scripted-telnet prohibition in all gopher servers, not just GN. ------------------------------ Subject: 22. Can GN scripts get interactive input from the user? No. This is a limitation of the gopher protocol. It restricts all gopher servers, not just GN. If you really need interactivity, you will have to attach your script to a telnet login or a port in inetd, then point a type 8 (telnet) item to the script's home. ------------------------------ Subject: 23. Is there an easy way of knowing which version of GN is running on a particular host? Yes! Telnet to the host and port in question, type "HEAD / HTTP/1.0", then press Enter twice. GN will respond with several lines of information, one item of which will be its version number. This works with most HTTP servers, not only GN. ------------------------------ Subject: 24. How do I set up clickable images? Judy Birmingham has written a guide to how to set up clickable images in GN. See . ------------------------------ Subject: 25. I added a line to /etc/services for a service, but inetd can't find the service. What's wrong? Your system is probably using YP (Yellow Pages), which is also known as NIS (Network Information Service). If NIS or YP is active, changing the local /etc/services file has no effect. You need to change the services file on the YP server. Users on systems using YP can check up on the YP services file with the command "ypcat services". ------------------------------ Subject: 26. My inline images are showing up as "broken picture" icons. You're probably missing a menu file entry like this: Name=dummy entry for foo.gif to keep GN happy Path=I/foo.gif Attribute=invisible Every file GN serves must have a Name and Path entry in its menu file, or GN won't deliver it. Inline images are files, so they need their Name and Path entries. We've added "Attribute=invisible" to prevent this entry from appearing in the menu listing provided to the client. If the image and the HTML document are in different directories, this entry goes in the menu file for the directory in which the image resides. [ end of gn 1.7 ] -- Chip Rosenthal They said I was just a dumb cowpoke. Unicom Systems Development I didn't want to make a fuss. - Robert Earl Keen For a good time: http://www.unicom.com/john-hiatt/ PGP key: http://www.unicom.com/personal/chip.html